package org.farec.tcc.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.farec.tcc.modelo.Empresa;

public class EmpresaDAO {
	
	private Connection connection;
	
	public EmpresaDAO(Connection connection)
	{
		this.connection=connection;
	}
	
	public void altera(Empresa empresa)
	{
		String sql = "UPDATE empresa SET status=?, tipo=?," +
				 "nomefant=?, razao=?, cnpj=?, endereco=?, bairro=?,cidade=?," +
				 "estado=?, cep=?, telefone=?, celular=?, email=?, site=? WHERE id=? ";
		try
		{
			PreparedStatement stmt = this.connection.prepareStatement(sql);
			
			//seta os dados
			stmt.setBoolean(1, empresa.isStatus());
			stmt.setString(2, empresa.getTipo());
			stmt.setString(3, empresa.getNomeFantasia());
			stmt.setString(4, empresa.getRazao());
			stmt.setString(5, empresa.getCnpj());
			stmt.setString(6, empresa.getEndereco());
			stmt.setString(7, empresa.getBairro());
			stmt.setString(8, empresa.getCidade());
			stmt.setString(9, empresa.getEstado());
			stmt.setString(10, empresa.getCep());
			stmt.setString(11, empresa.getTelefone());
			stmt.setString(12, empresa.getCelular());
			stmt.setString(13, empresa.getEmail());
			stmt.setString(14, empresa.getSite());
			stmt.setInt(15, empresa.getCodigo());
	
			stmt.execute();
			stmt.close();
		}
		catch(SQLException e)
		{
			throw new RuntimeException(e);
		}
	}
	
	public Empresa buscaPorCodigo(int codigo)
	{
		try
		{
	
		PreparedStatement stmt = this.connection.prepareStatement("SELECT * from empresa where id=?");
		
		stmt.setInt(1, codigo);
		Empresa empresa = new Empresa();
		ResultSet rs = stmt.executeQuery();
			if(rs.next())
			{
				//Criando um nova instancia
				
				empresa.setCodigo(rs.getInt("id"));
				empresa.setStatus(rs.getBoolean("status"));
				empresa.setTipo(rs.getString("tipo"));
				empresa.setNomeFantasia(rs.getString("nomefant"));
				empresa.setRazao(rs.getString("razao"));
				empresa.setCnpj(rs.getString("cnpj"));
				empresa.setEndereco(rs.getString("endereco"));
				empresa.setBairro(rs.getString("bairro"));
				empresa.setCidade(rs.getString("cidade"));
				empresa.setEstado(rs.getString("estado"));
				empresa.setCep(rs.getString("cep"));
				empresa.setTelefone(rs.getString("telefone"));
				empresa.setCelular(rs.getString("celular"));
				empresa.setEmail(rs.getString("email"));
				empresa.setSite(rs.getString("site"));
			
			}
			rs.close();
			stmt.close();	
			return empresa;
		}
		
		catch(SQLException e)
		{
			throw new RuntimeException(e);
		}
	}
	
	public boolean getEmpresa(int codigo)
	{
		try
		{
			String sql = "SELECT id from empresa WHERE id=?";
			PreparedStatement stmt = this.connection.prepareStatement(sql);
			stmt.setInt(1, codigo);
			
			ResultSet rs = stmt.executeQuery();
			
			if(rs.next())
			{
				return true;
			}
		}
		catch(SQLException e)
		{
			throw new RuntimeException(e);
		}
		
		return false;
	}

}
